package com.dc.project.service;

import com.dc.project.entity.bo.TaskResultGenerateBo;
import com.dc.project.entity.map.TaskResultGenerateMapVo;
import com.dc.project.entity.po.TaskResultGenerate;
import com.dc.project.entity.query.TaskResultGenerateQuery;
import com.dc.project.entity.vo.TaskResultGenerateVo;
import com.own.business.resource.entity.vo.FileRecordVo;
import com.own.component.common.base.service.BaseService;

import java.util.List;

/**
 * TaskResultGenerateService
 *
 * @author chenxueli
 * @date 2025-03-10 16:37:53
 */
public interface TaskResultGenerateService extends BaseService<
        TaskResultGenerate,
        TaskResultGenerateBo,
        TaskResultGenerateVo,
        TaskResultGenerateMapVo,
        TaskResultGenerateQuery
        > {

    /**
     * 根据任务id查询所有生成的文件信息
     *
     * @param taskId 任务id
     * @return 生成的文件信息
     */
    List<TaskResultGenerate> listByTaskId(Long taskId);

    /**
     * 根据项id生成文件
     *
     * @param itemId 项id
     */
    void generateByItemId(Long itemId);

    /**
     * 根据详情id生成文件
     *
     * @param detailId 详情id
     */
    void generateByDetailId(Long detailId);

    /**
     * 根据任务id生成文件
     *
     * @param taskId 任务id
     */
    void generateByTaskId(Long taskId);

    /**
     * 根据项id打包生成文件信息
     *
     * @param itemId 项id
     * @return 打包后上传的文件
     */
    FileRecordVo packageByItemId(Long itemId);

    /**
     * 根据详情id打包生成文件信息
     *
     * @param detailId 详情id
     * @return 打包后上传的文件
     */
    FileRecordVo packageByDetailId(Long detailId);

    /**
     * 根据任务id打包生成文件信息
     *
     * @param taskId 任务id
     * @return 打包后上传的文件
     */
    FileRecordVo packageByTaskId(Long taskId);

}

